其他
Python教学案例|匹配两个excel文件
windows下安装openpyxl 3.0.0 版本:
win + r #打开运行
cmd #进入黑黑的窗口
pip install openpyxl==3.0.0 -i https://pypi.douban.com/simple #用pip安装,搞定
01
准备好表格及数据
生活中经常会碰到两个excel表格中的数据要根据某个关键词进行匹配,那么如何用Python自动实现这些工作呢?
比如,在文件夹下有如下2个表格:
02
编写代码测试
代码如下:
可直接复制代码如下:
import pandas as pd
exc1 = pd.read_excel(r'D:\test\test1.xlsx')
exc2 = pd.read_excel(r'D:\test\test2.xlsx')
outer=pd.merge(exc1.drop_duplicates(),exc2.drop_duplicates(),left_on='准考证号',right_on='准考证号',how='left')
outer.to_excel(r'D:\test\unn.xlsx',index=False,encoding='utf-8')
print("合并已经完成,请查看~")
打开unn.xlsx,发现成功匹配了两个表格的数据到一个表格里:
03
pd.merge()详解
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False)
参数说明:
left与right:两个不同的DataFrame
how:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner
on : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键
left_on:左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。
right_on:右侧DataFrame中用作 连接键的列名
left_index:使用左侧DataFrame中的行索引做为连接键
right_index:使用右侧DataFrame中的行索引做为连接键
sort:默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能
suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为('_x','_y')
copy:默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能
indicator:在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)
merge()是将两个表合并在一起,横向合并。纵向合并用的是append()函数。
END